package com.ruoyi.business.service.impl;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.SysDeptMapper;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.CzLicenseMapper;
import com.ruoyi.business.domain.CzLicense;
import com.ruoyi.business.service.ICzLicenseService;

/**
 * 无人机驾照Service业务层处理
 * 
 * @author ruoyi
 * @date 2022-01-01
 */
@Service
public class CzLicenseServiceImpl implements ICzLicenseService 
{
    @Autowired
    private CzLicenseMapper czLicenseMapper;
    @Autowired
    private SysDeptMapper deptMapper;

    /**
     * 查询无人机驾照
     * 
     * @param id 无人机驾照主键
     * @return 无人机驾照
     */
    @Override
    public CzLicense selectCzLicenseById(String id)
    {
        return czLicenseMapper.selectCzLicenseById(id);
    }

    /**
     * 查询无人机驾照列表
     * 
     * @param czLicense 无人机驾照
     * @return 无人机驾照
     */
    @Override
    public List<CzLicense> selectCzLicenseList(CzLicense czLicense)
    {
        return czLicenseMapper.selectCzLicenseList(czLicense);
    }

    /**
     * 新增无人机驾照
     * 
     * @param czLicense 无人机驾照
     * @return 结果
     */
    @Override
    public int insertCzLicense(CzLicense czLicense)
    {
    	SysUser user = SecurityUtils.getLoginUser().getUser();
    	SysDept dept= deptMapper.selectDeptById(user.getDeptId());
    	//审核人员为本部门负责人员
    	czLicense.setAuditUserId(dept.getLeader());
    	czLicense.setApplyStatus("apply");
        czLicense.setCreateTime(DateUtils.getNowDate());
        return czLicenseMapper.insertCzLicense(czLicense);
    }

    /**
     * 修改无人机驾照
     * 
     * @param czLicense 无人机驾照
     * @return 结果
     */
    @Override
    public int updateCzLicense(CzLicense czLicense)
    {
    	if("approval".equals(czLicense.getApplyStatus())) {
    		czLicense.setSerialNo(generaSerialNo());
    		czLicense.setCertificateDate(DateUtils.getNowDate());
    	}
        czLicense.setUpdateTime(DateUtils.getNowDate());
        return czLicenseMapper.updateCzLicense(czLicense);
    }

    /**
     * 批量删除无人机驾照
     * 
     * @param ids 需要删除的无人机驾照主键
     * @return 结果
     */
    @Override
    public int deleteCzLicenseByIds(String[] ids)
    {
        return czLicenseMapper.deleteCzLicenseByIds(ids);
    }

    /**
     * 删除无人机驾照信息
     * 
     * @param id 无人机驾照主键
     * @return 结果
     */
    @Override
    public int deleteCzLicenseById(String id)
    {
        return czLicenseMapper.deleteCzLicenseById(id);
    }
    
    public String generaSerialNo() {
		DateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		Date nowDate = DateUtils.getNowDate();
		StringBuffer serialNo = new StringBuffer();
		serialNo.append("FL").append(sdf.format(nowDate))
				.append(String.format("%04d", czLicenseMapper.selectCountByDate(nowDate) + 1));
		return serialNo.toString();
	}
}
